# 编译器设置（Linux系统默认gcc）
CC = gcc
# 编译器和选项
CC = gcc
CFLAGS = -g -Wall -I.  # 包含当前目录头文件
LDFLAGS = -lpthread    # 若使用线程库

# 所有源文件对应的目标文件（必须包含dlist.o和server.o）
OBJS = main.o server.o log.o dlist.o  

# 最终可执行文件名称（改为有意义的名称，如server）
TARGET = server

# 默认目标：编译生成可执行文件
all: $(TARGET)

# 链接阶段：将所有.o文件合并为可执行文件
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)

# 编译阶段：将.c文件编译为.o文件
%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

# 清理生成文件
clean:
	rm -f $(OBJS) $(TARGET)

# 声明伪目标
.PHONY: all clean

